home *** CD-ROM | disk | FTP | other *** search
/ The Games Machine 76 / XENIATGM66.iso / Indiana Jones / Indiana Jones.exe / RESOURCE / PREVIEW.GOB / cog_aet_mardukdais.cog < prev    next >
Text File  |  1999-11-15  |  6KB  |  259 lines

  1. # Jones 3D Cog Script
  2. #
  3. # aet_MardukDais.cog
  4. #
  5. # [TL]
  6. #
  7. # (C) 1999 LucasArts Entertainment Co. All Rights Reserved
  8. # ========================================================================================
  9. symbols
  10.     
  11. message     startup
  12. message     crossed
  13. message        arrived
  14. message        damaged
  15. message        entered
  16. message        activated
  17.  
  18. surface     adjoin0                                # Start the cutscene adjoins.                                            
  19. surface     adjoin1                            
  20. surface     adjoin2                            
  21. surface        hotspot                                # Used to activate the Marduk Key. (temp)
  22.  
  23. sector        marduksector                        # Central sector for killing Marduk. (temp)
  24.  
  25. thing        player                        local
  26. thing        wedge0                                # Wedge door.
  27. thing        wedge1
  28. thing        wedge2
  29.  
  30. thing        cam0                                # Camera                                 
  31. thing        ghost0                                # For camera to focus on.
  32.  
  33. thing        indy                                # First actor Indy                        
  34. thing        indy2                                # Second actor Indy
  35. thing        marduk                        mask=0x9
  36. thing        probe                                # Charging probe from ceiling.
  37.  
  38. cog            mardukCog                            # Link to AI cog
  39.  
  40. sound        fade=nub_charged_pad_c.wav    local
  41.  
  42. int            done0=0                        local
  43. int            done1=0                        local    # Done flag for second cutscene.
  44. int            curcam                        local
  45. int            electric=1                    local    # Done making whip electric
  46. int            enterdone=0                    local    # Done flag for entering Marduk sector once. (temp)
  47.  
  48. flex         mardukescape                local
  49.  
  50. end
  51.  
  52. # ========================================================================================
  53. code
  54.  
  55. startup:
  56.  
  57. player = GetLocalPlayerThing();
  58. AISetCutsceneMode(indy);
  59. AISetCutsceneMode(marduk);
  60.  
  61. MoveToFrame(wedge0, 1, 1.0);                    # Set wedge doors in correct starting pos.    
  62. MoveToFrame(wedge1, 1, 1.0);    
  63. MoveToFrame(wedge2, 1, 1.0);    
  64.  
  65. SetThingFlags(marduk, 0x80000);                    # Hide Marduk.
  66.  
  67. return;
  68.  
  69. # ........................................................................................
  70. crossed:
  71.  
  72. if (done0 == 1)    return;
  73. if ((GetSenderRef() == adjoin0) || (GetSenderRef() == adjoin1) || (GetSenderRef() == adjoin2))
  74.     {
  75.     done0 = 1;
  76.     
  77.     Sleep(0.1);
  78.     
  79.     #Begin cutscene.
  80.     StartCutscene(1);
  81.     curcam = GetCurrentCamera();
  82.     SetActorFlags(player, 0x200000);
  83.     SetThingFlags(player, 0x80000);
  84.  
  85.     #Focus on the actor Indy falling.
  86.     SetCurrentCamera(2);
  87.     SetCameraFocus(2, cam0);
  88.     ClearThingFlags(indy, 0x80000);
  89.     SetCameraSecondaryFocus(2, indy);
  90.     
  91.     Sleep(1.0);
  92.  
  93.     #Watch doors close.
  94.     SetCameraSecondaryFocus(2, ghost0);
  95.     MoveToFrame(wedge0, 0, 1.0);    
  96.     MoveToFrame(wedge1, 0, 1.0);    
  97.     MoveToFrame(wedge2, 0, 1.0);    
  98.  
  99.     Sleep(1.0);
  100.     
  101.     # Watch Marduk enter and probe descend.
  102.     ClearThingFlags(marduk, 0x80000);
  103.     SetCameraSecondaryFocus(2, marduk);
  104.     AISetLookFrame(marduk, 1);
  105.     AISetMoveFrame(marduk, 1);
  106.     AISetMoveSpeed(marduk, 2);
  107.     MoveToFrame(probe, 1, 1.0); 
  108.  
  109.     Sleep(3.0);
  110.  
  111.     # Return to normal.
  112.     CopyOrientandPos(indy, player);
  113.     SetCurrentCamera(curcam);
  114.     SetCameraFocus(curcam, player);
  115.     SetCameraFOV(90, 0, 0.0);
  116.     ClearActorFlags(player, 0x200000);
  117.     ClearThingFlags(player, 0x80000);
  118.     SetThingFlags(indy, 0x80000);
  119.     AIClearCutsceneMode(marduk);
  120.     EndCutScene();
  121.  
  122.     # Wake up ai cog.
  123.     SendMessageEx(mardukCog, 27, 0, 0, 0, 0);
  124.     }
  125.  
  126. return;
  127.  
  128. # ........................................................................................
  129. arrived:
  130.  
  131. if ((GetSenderRef() == wedge0) && (GetCurFrame(wedge0) == 1)) 
  132.     {
  133.  
  134.     }
  135.  
  136. return;
  137.  
  138. # ........................................................................................
  139. mardukescape:
  140.  
  141. # Obtain Marduk's crown.
  142. ChangeInv(player, 111, 1.0);
  143. SetInvAvailable(player, 111, 1);
  144. JonesInvItemChanged(111);
  145.  
  146. # Begin cutscene.
  147. StartCutscene(1);
  148. curcam = GetCurrentCamera();
  149. SetActorFlags(player, 0x200000);
  150. SetThingFlags(player, 0x80000);
  151. SetCurrentCamera(2);
  152. SetCameraFocus(2, cam0);
  153. ClearThingFlags(indy2, 0x80000);
  154.  
  155. # Watch doors open.
  156. SetCameraSecondaryFocus(2, ghost0);
  157. MoveToFrame(wedge0, 1, 1.0);    
  158. MoveToFrame(wedge1, 1, 1.0);    
  159. MoveToFrame(wedge2, 1, 1.0);    
  160. MoveToFrame(probe, 0, 1.0);    
  161.  
  162. Sleep(5.0);
  163.  
  164. # Watch Marduk Flee.
  165. SetCameraSecondaryFocus(2, marduk);
  166. AISetLookFrame(marduk, 2);
  167. AISetMoveFrame(marduk, 2);
  168. AISetMoveSpeed(marduk, 2);
  169.  
  170. Sleep(5.0);
  171.  
  172. # Return to normal.
  173. CopyOrientandPos(indy2, player);
  174. SetCurrentCamera(curcam);
  175. SetCameraFocus(curcam, player);
  176. SetCameraFOV(90, 0, 0.0);
  177. ClearActorFlags(player, 0x200000);
  178. ClearThingFlags(player, 0x80000);
  179. SetThingFlags(indy2, 0x80000);
  180. EndCutScene();
  181.  
  182. return;
  183.  
  184. # ........................................................................................
  185. entered:
  186.  
  187. # Start Marduk escape...soon to be user0.
  188. if ((GetSenderRef() == marduksector) && (enterdone == 0))
  189.     {
  190.     if (GetInv(player, 63))
  191.         {
  192.         enterdone = 1;
  193.         call mardukescape;
  194.         ChangeInv(player, 63, -1);
  195.         }
  196.     }
  197.  
  198. return;
  199.  
  200. # ........................................................................................
  201. activated:
  202.  
  203. # Using Marduk's key to close room.
  204. if ((GetSenderRef() == hotspot) && (done1 == 0))
  205.     {
  206.     if (GetCurItem(player) == 111)
  207.         {
  208.         done1 = 1;
  209.         # Begin cutscene.
  210.         StartCutscene(1);
  211.         SetActorFlags(player, 0x200000);
  212.         PlayMode(player, 61, 0);
  213.         
  214.         Sleep(0.5);
  215.         
  216.         # Take item from inventory.
  217.         ChangeInv(player, 111, -1);
  218.         curcam = GetCurrentCamera();
  219.         Sleep(1.0);
  220.         SetCurrentCamera(2);
  221.         SetCameraFocus(2, cam0);
  222.     
  223.         # Watch doors open.
  224.         SetCameraSecondaryFocus(2, ghost0);
  225.         MoveToFrame(wedge0, 0, 1.0);    
  226.         MoveToFrame(wedge1, 0, 1.0);    
  227.         MoveToFrame(wedge2, 0, 1.0);    
  228.         MoveToFrame(probe, 1, 1.0);    
  229.         electric = 0;
  230.  
  231.         Sleep(5.0);
  232.         
  233.         # Return to normal.
  234.         SetCurrentCamera(curcam);
  235.         SetCameraFocus(curcam, player);
  236.         SetCameraFOV(90, 0, 0.0);
  237.         ClearActorFlags(player, 0x200000);
  238.         EndCutScene();
  239.         }
  240.     }
  241.  
  242. return;
  243.  
  244. # ........................................................................................
  245. damaged:
  246.  
  247. # Charge whip here.
  248. if ((GetParam(1) == 0x10) && (GetSenderRef() == probe) && (electric == 0))
  249.     {
  250.     electric = 1;
  251.     SetWhipElectric(1); 
  252.     }
  253.  
  254. return;
  255.  
  256. # ........................................................................................
  257. end
  258.  
  259.